/*
 * Clase contenedora de datos de la tabla categoria
*/
package pojos;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

/** 
 * @author seiloprub
 */
public class Categoria implements Pojo{

    private int id;
    // atributos
    private String cat_nombre;
    
    public Categoria(int id, String cat_nombre) {
        this.id=id;
        this.cat_nombre=cat_nombre;
    }
    
    public Categoria(String cat_nombre) {
        this.id=-1;
        this.cat_nombre=cat_nombre;
    }

    /**
     * @return the id
     */
    public int getId() {
        return id;
    }

    /**
     * @return the nombre
     */
    public String getCat_nombre() {
        return cat_nombre;
    }
  
    /**
     * guarda y actualiza el tipo de categoria
     */
    @Override
    public int guardar(Connection con) {
        int count=0;       
        if(this.id==-1) {
            //INSERTAR            
            String sql="INSERT INTO categoria(cat_nombre) "
                    + "VALUES(?)";
            PreparedStatement stmt=null;
            try {
                stmt=con.prepareStatement(sql);
                //poner los valores
                stmt.setString(1, this.getCat_nombre());
                // ejecutar
                count=stmt.executeUpdate();
            } catch (SQLException ex) {
                Logger.getLogger(Producto.class.getName()).log(Level.SEVERE, null, ex);
            } finally {
                try {
                    if (stmt!=null) {
                        stmt.close();
                    }
                } catch (SQLException ex) {
                    Logger.getLogger(Producto.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        } else {
            //ACTUALIZAR
            String sql="UPDATE categoria SET cat_nombre=?"
                        + " WHERE id=?";
            PreparedStatement stmt=null;
            try {
                stmt=con.prepareStatement(sql);
                //poner los valores
                stmt.setString(1, this.getCat_nombre());
                stmt.setInt(2, this.getId());
                // ejecutar
                count=stmt.executeUpdate();
            } catch (SQLException ex) {
                Logger.getLogger(Producto.class.getName()).log(Level.SEVERE, null, ex);
            } finally {
                try {
                    if (stmt!=null) {
                        stmt.close();
                    }
                } catch (SQLException ex) {
                    Logger.getLogger(Producto.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        }       
        return count;
    }
    
    /**
     * borra el tipo de categoria
     */
    @Override
    public int borrar(Connection con) {
        int count=0;
        String sql="DELETE FROM categoria WHERE id=?";
        PreparedStatement stmt=null;
        try {
            stmt=con.prepareStatement(sql);
            stmt.setInt(1, this.getId());
            // ejecutar
            count=stmt.executeUpdate();          
        } catch (SQLException ex) {             
            Logger.getLogger(Producto.class.getName()).log(Level.SEVERE, null, ex);
        } finally {            
            try {
                if(stmt!=null) {
                    stmt.close();
                }                
            } catch (SQLException ex) {
                Logger.getLogger(Producto.class.getName()).log(Level.SEVERE, null, ex);
            }        
        }
        return count;
    }
}
